<?
class RegisterForm extends Form
{
	private $show_form=true;
	
	function RegisterForm()
	{
		Form::Form('Register');
		
		$this->link_js('javascript/ajax.js');
		$this->link_js('javascript/jquery/packed/jquery.validate.js');	
		$this->link_js('javascript/rongbay/register.js');	
		
		$this->link_js('javascript/rounded-corners.js');	
		$this->link_js('javascript/form-field-tooltip.js');	
		
		//$this->link_css('style/register.css');	
		$this->link_css('style/form-field-tooltip.css');	
                $this->link_css("style/front-login-register.css");
    
		//check secrurity
		if(!$_SERVER["HTTP_ACCEPT_ENCODING"] && !$_SERVER["HTTP_ACCEPT_LANGUAGE"]) 
		{
			Url::redirect('home');
		}
			
		/*if(strpos(CGlobal::$referer_url,WEB_ROOT)!==0){
			$_SESSION['just_registed']=TIME_NOW-120;
			ECLib::my_setcookie('just_registed',TIME_NOW-120);
			Url::access_denied();
		}*/
		
		//END check secrurity
		
		CGlobal::$website_title = "Đăng ký thành viên";
	}
	
	function on_submit()
	{
		if(User::checkLock4Ever(1))
		{
			Url::redirect_current();
		}
		
		//check bảo mật
		$just_registed_s	=	0;//Session
		$just_registed_c	=	0;//Cookies
		
		if(isset($_SESSION['just_registed']))
		{
			$just_registed_s=$_SESSION['just_registed'];
		}
		
		if(isset($_COOKIE['just_registed']))
		{
			$just_registed_c=$_COOKIE['just_registed'];
		}
		
		if($just_registed_s>(TIME_NOW-120) || $just_registed_c>(TIME_NOW-120) || !REG_ON)
		{		
			Url::redirect_current();
		}
		//END check bảo mật
		
		
		// check de ban IP
		//$ip 			= ECLib::ip();
		//$arr_badwords 	= ECLib::checkBadWord($ip,true);
			
		//if($arr_badwords["bad"]!="" && $arr_badwords["bad_key"]!="")
		//{
			//$this->setFormError('ban_ip',"Có lỗi xẩy ra");
		//}
		// end check de ban IP
		
		
		$full_name 			= Url::getParam('full_name');
		$email 				= Url::getParam('email');
		$mobile_phone 		= String::trimSpace(Url::getParam('mobile_phone'));
		$password 			= String::trimSpace(Url::get('register_password'));
		$confirm_password 	= String::trimSpace(Url::get('confirm_password'));
		
		$this->checkFormInput('Tên đầy đủ','full_name',$full_name,'str',true,'',0,50);	
		$this->checkFormInput('Email','email',$email,'email',true,'',6,50);	
		//$this->checkFormInput('Điện thoại di động','mobile_phone',$mobile_phone,'str',true,'',0,50);	
		$this->checkFormInput('Mật khẩu truy cập','register_password',$password,'str',true,'',6,50);	
		$this->checkFormInput('Nhập lại mật khẩu','confirm_password',$confirm_password,'str',true,'',6,50);	
		if(strlen($mobile_phone) < 7){
                    $this->setFormError('mobile_phone',"<font color=blue><b><i>Số điện thoại</b></i></font> không đúng !");
				return;
                }
		if(!$this->errNum)
		{
			if($password!=$confirm_password)
			{
				$this->setFormError('register_password',"Nhập lại Mật khẩu truy cập không khớp!");
				return;
			}	
		}
		
		if($mobile_phone && !ECLib::is_mobile($mobile_phone)){
			$mobile_phone = "";
		}
		
//		if(REG_CAPTRA)
//		{
//			$captcha_register = Url::get('captcha_register');
//			
//			if($captcha_register==''){
//				$this->setFormError('captcha_register',"Bạn chưa nhập <b>Mã bảo mật</b>!");
//			}
//			else{
//				if(!isset($_SESSION["ecore_validate"]) || $captcha_register != $_SESSION["ecore_validate"]){
//					$this->setFormError('captcha_register',"<b>Mã bảo mật</b> không chính xác!");
//				}
//			}
//		}
		
		if((int)Url::get('confirm_register')!=1){
			$this->setFormError('confirm_register',"Bạn phải đọc và đồng ý với những <a target=\"_blank\" href=\"".WEB_ROOT."\" >điều khoản của " . WEB_NAME . "</a>!");
		}
		
		if(!$this->errNum)
		{
			if(DB::exists('SELECT id FROM ' . TABLE_PREFIX . 'user WHERE `email`="'.$email.'"'))
			{
				$this->setFormError('email',"<b>Email</b> bạn chọn đã tồn tại, hãy chọn lại một <b>Email</b> khác!");
			}
			else
			{	
				$user_newsletter = Url::getParamInt("user_newsletter", 0);
				if($user_newsletter == 1){
                                    $insert = array('email'=>$email,'time_c'=>TIME_NOW);
                                    $check = DB::select_all('mail_request', 'email="'.$email.'"');
                                    if(sizeof($check) == 0){
                                        if(DB::insert('mail_request', $insert)){
                                            System::addContactToSting($email, 2, $full_name, $mobile_phone);
                                        }
                                    }//else do nothing :D
                                }
                                    
				$user_info = array(	
									'email'		=>$email,
									'full_name'			=>$full_name,
									'password'		=>User::encode_password($password),
									'mobile_phone'		=>$mobile_phone,
									'birth_day'			=>TIME_NOW,
									'is_active'	=>2,
									'reg_ip'			=>ECLib::ip()
									);
									

				$user_id = DB::insert(TABLE_PREFIX . 'user', $user_info);
				
				if($user_id)
				{
					$_SESSION['just_registed']		=	TIME_NOW;
					ECLib::my_setcookie('just_registed',TIME_NOW);
					
					if(USER_ACTIVE_ON)
					{
						$active=DB::select('user_active','user_id='.$user_id);
						
						$active_code		= md5(TIME_NOW.$password);
						
						if($active)
						{
							$active	=	array(
												'id'		 =>$active['id'],
												'user_id'	 =>$user_id,
												'active_code'=>$active_code,
												'time'		 =>TIME_NOW,
											 );
						}
						else
						{
							$active	=	array(
												'user_id'	 =>$user_id,
												'active_code'=>$active_code,
												'time'		 =>TIME_NOW,
												);
						}
						
						DB::insert('user_active',$active,true);
						
						global $display;
						
						$display->add("active_account", 0);
	                    
						$display->add('rb_url',WEB_ROOT);
                                                $display->add('WEB_DOMAIN',WEB_DOMAIN);
                                                $display->add('WEB_NAME',WEB_NAME);
						$display->add('user_id',$user_id);
						$display->add("user_email", $email);
                                                $display->add("user_name", $full_name);
	                    
						$display->add('active_code',$active_code);
						$display->add('SUPPORT_TEL',SUPPORT_TEL);
						$display->add('SUPPORT_EMAIL',SUPPORT_EMAIL);
						
                                                                $content_email=$display->output('send_active_mail',1,'RegisterSuccess');
						
						//Send email here;
						if(EMAIL_ON && System::sendECEmail(TEST_EMAIL != '' ? TEST_EMAIL : $email,'Kích hoạt tài khoản!',$content_email))
						{
							Url::redirect('reg_success',array('cmd'=>'notify'));//$this->setFormSucces('','<b>Chúc mừng bạn đã đăng ký tài khoản thành công!</b><br /><br />Mã kích hoạt đã được gửi đi tới E-mail: "'.$email.'"<br />Bạn hãy check lại Email để kích hoạt tài khoản của mình!');
						}
						else
						{
							$this->setFormSucces('','<b>Chúc mừng bạn đã đăng ký tài khoản thành công!</b><br /><br />Tuy nhiên hệ thống chưa gửi được Mã kích hoạt tới E-mail: "'.$email.'"!<br />Bạn có thể <a href="'.Url::build('reg_success',array('cmd'=>'active')).'">click vào đây</a> để hệ thống gửi lại mã kích hoạt vào Email của mình!');
						}
						
						$this->show_form=false;
					}
					else
					{
						User::Login($user_id);
						Url::redirect('reg_success');
					}
				}
				else
				{
					$this->setFormError('',"Chưa đăng ký được, mời bạn thử lại!");
				}
			}
		}
	}
	
	function draw()
	{
		global $display;	
		$this->beginForm();
		
		$display->add('msg_register',$this->showFormErrorMessages(1));			
		$display->add('msg_success',$this->showFormSuccesMessages(1));		
		$display->add('show_form',$this->show_form);		
				
		$display->add('error_full_name',	Url::get('full_name'));
		$display->add('error_email',		Url::get('email'));
		$display->add('error_user_name',	Url::get('register_user_name'));
		$display->add('error_mobile_phone',	Url::get('mobile_phone'));
		$display->add('register_password',	Url::get('register_password'));
		$display->add('confirm_password',	Url::get('confirm_password'));
		
		$display->add('REG_CAPTRA',	REG_CAPTRA);
		
		$display->add('user_newsletter',	(int)(bool)Url::getParamInt("user_newsletter", (int)(bool)(!$_POST)));
		$display->add('user_hide_email',	(int)(bool)Url::getParamInt("user_hide_email", 0));
		
		$display->add('confirm_register',	(int)(bool)Url::getParamInt("confirm_register", 0));

		$display->output('Register');	
		$this->endForm();		
	}
}
?>
